import mx.controls.Alert;
import mx.events.CloseEvent;
import mx.events.ValidationResultEvent;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;            

 /**
 * @comment Variaveis para controle de dados referente as telas dos filtros de relatórios.
 * @author  Diego Leão Von Kruger Sureck
 */	
private var validar:String = ValidationResultEvent.VALID;
private var refUploadArquivo:FileReference;
private var bytesArquivo:ByteArray = null;
private var imageTypes:FileFilter = new FileFilter("Images (*.jpg, *.jpeg, *.png, *.gif)", "*.jpg; *.jpeg; *.png; *.gif;");


 /**
 * @comment Ocorreu uma falha ao chamar algum serviço.
 * @author  Diego Leão Von Kruger Sureck
 */	            
private function onFault(event:FaultEvent):void {                
	Alert.show(event.fault.message);            
}        

 /**
 * @comment Método Padrão para validação de dados do filtro de relatório.
 * @author  Diego Leão Von Kruger Sureck
 */	
private function handleValid(eventObj:ValidationResultEvent, flag:Boolean):void {
	if(validar == ValidationResultEvent.VALID) 
    	validar = eventObj.type;
	if(flag) 
    	if(validar == ValidationResultEvent.INVALID) { 
    		validar = ValidationResultEvent.VALID;
			Alert.show(resourceManager.getString('myResources', 'geral.validar.msg'));
    	} else carregaRelatorio();    
}

 /**
 * @comment Método para comparação de dois objetos Date, indicando se o primeiro objeto armazena 
 *          data antes, é igual, ou armazena data depois da data do segundo objeto. 
 * @param   dateA  Objeto Date.
 * @param   dateB  Objeto Date.
 * @return  0 se dateA e dateB são null ou iguais; 
 *  	    -1 se dateA é null 
 *  	    -2 se dateB é null 
 * 		    1 se dateA antes de dateB
 * 		    2 se dateA depois de dateB
 * @author  Diego Leão Von Kruger Sureck
 */
public static function dateCompare(dateA:Date, dateB:Date):int
{
    if (dateA == null && dateB == null)
        return 0;

    if (dateA == null)
       return -1;

    if (dateB == null)
       return -2;

    var na:Number = dateA.getTime();
    var nb:Number = dateB.getTime();
    
    if (na < nb)
        return 1;

    if (na > nb)
        return 2;

    return 0;
}